package cn.com.djin.ssm.util;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
import org.apache.commons.io.IOUtils;
import org.springframework.web.multipart.MultipartFile;

/**
 * 
 * @author zzbin
 *   图片上传工具类
 */
public class UploadFile {
    //上传
	public static String upload(MultipartFile myFile,String path) throws IOException{
		//通过源文件（被上传的文件）获取源文件的输入流对象(将源文件的输入流写出到目标文件)
		InputStream is = myFile.getInputStream();
		//获取目标文件的绝对路径(通过相对路径)
		String realPath = getRealPath(path);
		//获取目标文件的名字（通过源文件名字）
		String newFileName = getNewFileName(myFile.getOriginalFilename());
		//创建一个空的目标文件
		File newFile = new File(realPath,newFileName);
		//通过空的目标文件创建目标文件的输出流对象(接收源文件的输入流)
		OutputStream os = new FileOutputStream(newFile);
		//通过io流的复制完成文件的上传
		IOUtils.copy(is, os);
		//关闭资源(先开后关)
		os.close();
		is.close();
		return "success,"+newFileName;	
	}
	//获取目标文件的名字（通过源文件名字）
	public static String getNewFileName(String originalFilename) {
		String uuid = UUID.randomUUID().toString();
		return uuid+"_"+originalFilename;
	}

	//获取目标文件的绝对路径(通过相对路径)
	public static String getRealPath(String path) {
		File file = new File(path);
		if(!file.exists()){
			file.mkdirs();
		}
		return path;
	}
}
